Source devices routinely communicate with a target device (e.g. a multiport memory). The communication may include transactions (e.g. read or write commands for a multiport memory) that may need to be routed to an appropriate access port of the target device. There is a need to be able to manage such routing flexibly depending on the envisaged application.